package test1.student;

public class studenttest {
    public static void main(String[] args) {
        student[] arr=new student[3];
        student stu1=new student("001","张三",23);
        student stu2=new student("002","李四",23);
        student stu3=new student("003","赵五",23);
        arr[0]=stu1;
        arr[1]=stu2;
        arr[2]=stu3;
        student stu4=new student("004","赵六",26);
        boolean flag=contains(arr,stu4.getID());
        if(flag){
            //已存在，不用添加；
            System.out.println("当前ID重复，请修改后在进行添加");
        }else{
            //不存在，就可以吧学生对象添加到数组中去;
            //若数组存满，如上种情况，创建一个新的数组，长度为老的数组+1;
            //若未满，直接添加;
            int count=getCount(arr);//记录数组arr中的元素数量；
            if(count==arr.length){
                //已经存满
                //创建一个新的数组，长度为老的数组+1;
                //将老数组的元素拷贝到新数组中；
                student[]newArr=creatnewArr(arr);
                //老数组元素为[stu1,stu2,stu3];
                //新数组元素为[stu1,stu2,stu3,null];
                newArr[count]=stu4;
                printArr(newArr);
            }else {
                //没有存满
                //但是例如[stu1,stu2,null]
                //getcount获得的数组元素为2，表示有2个元素；
                //还有一层意思为：下一次添加元素时，将添加到2索引的位置
                arr[count]=stu4;
                printArr(arr);
            }
        }

    }

    public static boolean contains(student[]arr,String id){
        for (int i = 0; i < arr.length; i++) {
            student stu = arr[i];
            if (stu != null) {
                String sid = stu.getID();
                if (sid == id) {
                    return true;
                }
            }
        }
        return false;
    }
    //定义方法判断数组存了几个元素
    public static int getCount(student[]arr){
        //定义计数器来统计；
        int count=0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]!=null){
                count++;
                //循环结束后，就可以知道数组中有几个元素
            }
        }
        return count;
    }
    public static student[] creatnewArr(student[]arr){
        student[]newArr=new student[arr.length+1];
        for (int i = 0; i < arr.length; i++) {
            newArr[i]=arr[i];
        }
        return newArr;
    }
    public static void printArr(student[]arr){
        for (int i = 0; i < arr.length; i++) {
            student stu=arr[i];
            if (stu!=null){
                System.out.println(stu.getAge()+","+stu.getID()+","+stu.getName());
            }
        }
    }
}
